package com.poly.flowable.service;

import com.alibaba.fastjson.JSONObject;
import com.poly.common.core.web.page.TableData;
import com.poly.flowable.pojo.dto.FormDTO;
import com.poly.flowable.pojo.dto.FormModelDTO;
import com.poly.flowable.pojo.query.FormQuery;

import java.util.List;
import java.util.Map;

/**
 * 表单业务
 *
 * @author Yang huijing
 * @date 2021-04-03
 */
public interface ISysFormBizService {

    /**
     * 新增数据
     *
     * @param formId --表单编号
     * @param dto    --表单数据
     * @return
     */
    Long add(Long formId, FormDTO dto);

    /**
     * 新增数据
     *
     * @param formId --表单编号
     * @param dto    --表单数据
     * @return
     */
    Long update(Long formId, FormDTO dto);

    /**
     * 新增数据
     *
     * @param formId --表单编号
     * @param idList --数据编号
     * @return
     */
    Integer remove(Long formId, List<Long> idList);


    Map<String, Object> get(Long formId, Long id);

    Map<String, Object> getDetail(Long formId, Long id);


    TableData<Map<String, Object>> queryPage(Long formId, FormQuery query);

    FormModelDTO getFormConfig(Long formId);

    JSONObject getFormModel(Long formId);

    /**
     * 启动流程实例
     *
     * @param formId
     * @param dto
     * @return
     */
    Boolean startProcess(Long formId, FormDTO dto);
}
